Ссылки по теме

*   [dmenu](/index.php/Dmenu "Dmenu")
*   [wmii](/index.php/Wmii "Wmii")

[DWM](http://dwm.suckless.org/) — это динамический [фреймовый](https://ru.wikipedia.org/wiki/Фреймовый_оконный_менеджеррежиме) оконный менеджер для [X](/index.php/Xorg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Xorg (Русский)"). Его функционал может быть значительно расширен различными [Дополнениями](#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F). Режимы работы могут переключаться динамически, в зависимости от приложения и поставленной задачи. **dwm** - чрезвычайно легковесный и быстрый, написан на Си при условии не выходить за рамки 2000 строк исходного кода. Он обеспечивает поддержку нескольких видео-выходов для [xrandr (Русский)](/index.php/Xrandr_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Xrandr (Русский)") и Xinerama.

## Contents

*   [1 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0)
    *   [1.1 Требования](#.D0.A2.D1.80.D0.B5.D0.B1.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F)
    *   [1.2 Применение изменений](#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B8.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B9)
    *   [1.3 Инструкции по использованию](#.D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.86.D0.B8.D0.B8_.D0.BF.D0.BE_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8E)
*   [2 Настройка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0)
*   [3 Советы и рекомендации](#.D0.A1.D0.BE.D0.B2.D0.B5.D1.82.D1.8B_.D0.B8_.D1.80.D0.B5.D0.BA.D0.BE.D0.BC.D0.B5.D0.BD.D0.B4.D0.B0.D1.86.D0.B8.D0.B8)
    *   [3.1 Дополнения](#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F)
    *   [3.2 Строка состояния](#.D0.A1.D1.82.D1.80.D0.BE.D0.BA.D0.B0_.D1.81.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.B8.D1.8F)
    *   [3.3 Перезапуск dwm без закрытия программ](#.D0.9F.D0.B5.D1.80.D0.B5.D0.B7.D0.B0.D0.BF.D1.83.D1.81.D0.BA_dwm_.D0.B1.D0.B5.D0.B7_.D0.B7.D0.B0.D0.BA.D1.80.D1.8B.D1.82.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC)
    *   [3.4 Пространство вокруг шрифта в строке состояния](#.D0.9F.D1.80.D0.BE.D1.81.D1.82.D1.80.D0.B0.D0.BD.D1.81.D1.82.D0.B2.D0.BE_.D0.B2.D0.BE.D0.BA.D1.80.D1.83.D0.B3_.D1.88.D1.80.D0.B8.D1.84.D1.82.D0.B0_.D0.B2_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B5_.D1.81.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.B8.D1.8F)
    *   [3.5 Конфликт горячих клавиш между st и dwm](#.D0.9A.D0.BE.D0.BD.D1.84.D0.BB.D0.B8.D0.BA.D1.82_.D0.B3.D0.BE.D1.80.D1.8F.D1.87.D0.B8.D1.85_.D0.BA.D0.BB.D0.B0.D0.B2.D0.B8.D1.88_.D0.BC.D0.B5.D0.B6.D0.B4.D1.83_st_.D0.B8_dwm)
*   [4 Устранение проблем](#.D0.A3.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC)
    *   [4.1 Java приложения](#Java_.D0.BF.D1.80.D0.B8.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F)
    *   [4.2 Firefox(полноэкранное html5(видео))](#Firefox.28.D0.BF.D0.BE.D0.BB.D0.BD.D0.BE.D1.8D.D0.BA.D1.80.D0.B0.D0.BD.D0.BD.D0.BE.D0.B5_html5.28.D0.B2.D0.B8.D0.B4.D0.B5.D0.BE.29.29)
*   [5 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5)

## Установка

**Примечание:** Если вы собрались использовать [dwm](https://aur.archlinux.org/packages/dwm/), учтите что для любой конфигурации требуется компиляция из исходных кодов. С примерами конфигурации можно ознакомится в разделе [#Настройка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0).

Основным способ получения исходных кодов **dwm** является использование [ABS](/index.php/ABS "ABS")([asp](https://www.archlinux.org/packages/?name=asp)). Однако для ознакомления(или в случаи отсутствия необходимости конфигурации) можно установить пакет [dwm](https://aur.archlinux.org/packages/dwm/) из официального репозитория.

### Требования

Для компиляции и сборки пакета **dwm** требуются пакеты [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) и [asp](https://www.archlinux.org/packages/?name=asp):

 `# pacman -S base-devel asp` 

Для навигации по списку приложений (рекомендуется) использовать [dmenu](https://www.archlinux.org/packages/?name=dmenu).

Для вывода информации в строку состояния (рекомендуется) [xorg-xsetroot](https://www.archlinux.org/packages/?name=xorg-xsetroot).

### Применение изменений

Все изменения вносимый в исходный код, будут доступны только после установки заново собранного пакета и перезапуска **dwm** `Mod1+Shift+Q`.

**Примечание:** После правки конфигурационных файлов для сборки и установки пакета используйте: `$ makepkg -efi ` 

### Инструкции по использованию

Основная [инструкция](http://dwm.suckless.org/tutorial) доступна на официальном сайте, а дополнительную информацию можно получить из:

 `$ man dwm` 

## Настройка

Настройка **dwm** заключается в правке исходных файлов. Все основные конфигурации собраны в файле `config.h`. Подробная информация о конфигурации хранится в хорошо прокомментированном файле `config.def.h`. Для получения дополнительной информации можно обратится к [официальному сайту](http://dwm.suckless.org/customisation/).

**Примечание:** Рекомендуем сделать копию файла config.h перед тем, как изменять его.

## Советы и рекомендации

### Дополнения

На официальном сайте имеется множество [дополнений](http://dwm.suckless.org/patches/), которые изменяют имеющийся функционал **dwm** внося изменения в `dwm.c` и `config.h`.

### Строка состояния

Оконный менеджер **dwm** использует имя основного окна работающего в фоне, в качестве [строки состояния](http://dwm.suckless.org/dwmstatus/).

С помощью `xsetroot -name ""` можно вывести любую информацию в строку состояния. Чтобы информация выводилась при старте **dwm** можно использовать `~/.xinitrc` или `~/.xprofile`. Пример ниже:

 `xsetroot -name "Thanks for all the fish!"` 

Для динамического обновления информации необходимо использовать цикл. Пример ниже:

```
while true; do
    xsetroot -name "$( date +"%F %R" )"
    sleep 1m    # Время обновления
done &
```

**Примечание:** Также для вывода информации можно использовать conky, dzen и пр.

### Перезапуск dwm без закрытия программ

Для того что бы перезапустить **dwm** без закрытия приложений, **dwm** можно запустить в цикле. Пример ниже:

```
while true; do
    dwm >/dev/null 2>&1
done
```

После этого можно будет перезапустить **dwm** `Mod1+Shift+Q`не затрагивая при этом остальные приложения.

**Примечание:** В случаи использования подобного подхода прийдётся использовать `killall xinit` для закрытия **dwm**

### Пространство вокруг шрифта в строке состояния

По умолчанию это расстояние составляет 2px. Изменить можно в файле `dwm.c`:

 `bh = dc.h = dc.font.height + 2;` 

### Конфликт горячих клавиш между st и dwm

В **dwm** по умолчанию для закрытие окон используется комбинация клавиш `Mod1+Ctrl+C` , в **st** эта же комбинация используется для копирования. Для нормальной работы необходим её переназначить в **st** либо же в **dwm**.

## Устранение проблем

### Java приложения

[Java#Non-reparenting window managers](/index.php/Java#Non-reparenting_window_managers "Java").

### Firefox(полноэкранное html5(видео))

При работе с html5(видео) в полноэкранном режиме не пропадает строка состояния. [Патч.](https://github.com/indeviral/dwm/blob/master/path/dwm-firefox-fs.diff) [Источник.](https://bbs.archlinux.org/viewtopic.php?id=212528)

## Смотрите также

*   [dwm's official website](http://dwm.suckless.org/)
*   [Introduction to dwm video](http://www.youtube.com/watch?v=GQ5s6T25jCc)
*   [dmenu](/index.php/Dmenu "Dmenu") - Simple application launcher from the developers of dwm
*   The [dwm thread](https://bbs.archlinux.org/viewtopic.php?id=57549/) on the forums
*   [Hacking dwm thread](https://bbs.archlinux.org/viewtopic.php?id=92895/)
*   Check out the forums' [wallpaper thread](https://bbs.archlinux.org/viewtopic.php?id=57768/) for a selection of dwm wallpapers
*   [Show off your dwm configuration forum thread](https://bbs.archlinux.org/viewtopic.php?id=74599)